package com.raycloud.erp.omll.provider.service.impl;

import com.raycloud.erp.omll.provider.constant.Constants;
import com.raycloud.erp.omll.data.entity.Order;
import com.raycloud.erp.omll.provider.model.vo.OrderCopierVo;
import org.springframework.stereotype.Component;

/**
 * @author 枫伦
 * @description: 洋葱订单拷贝助手
 * @date 2020/10/23 5:39 下午
 */
@Component
public class OmallOrderCopier {
    /***
     * @DESCRIPTION: 复制一个子订单或者商品的信息
     * Order对象在erp系统中是一个子订单对象或者是一个商品对象
     * @author 枫伦
     * @params: [orderDetail, order]
     * @return: com.raycloud.erp.omll.data.entity.Order
     * @Date: 2021/1/10 2:50 下午
     * @Modified By:
     */
    public Order copy(OrderCopierVo orderDetail, Order order) {
        //订单来源
        order.setSource(Constants.SOURCE);
//        order.setOid(Long.valueOf(Math.abs((orderDetail.getPlatformCode() + orderDetail.getSupplySkuCode() ).hashCode())));
        //商品标题
        order.setTitle(orderDetail.getProductName());
        //主商品id
        order.setNumIid(orderDetail.getSkuCode());
        //商品规格ID
        order.setSkuId(orderDetail.getSkuCode());
        //购买数量
        order.setNum(null != orderDetail.getCount() ? orderDetail.getCount() : 0);
        //购买的商品规格名称
        order.setSkuPropertiesName(orderDetail.getSkuName());
        //订单类型，一口价，预售，等
        order.setType(null);
        //数据状态
        order.setEnableStatus(true);
        //图片的绝对路径
        order.setPicPath(orderDetail.getImg());
        //主商品的商家外部编码(可与商家外部系统对接)
        order.setOuterIid(orderDetail.getSupplySkuCode());
//        order.setOuterSkuId(orderDetail.getSupplySkuCode());
        //卖家手动调整金额,默认为0分
        order.setAdjustFee(0L);
        // 商品最终均摊价
        order.setPayment(Long.valueOf(orderDetail.getPrice()));
        // 商品优惠后总价
        order.setTotalFee(Long.valueOf(orderDetail.getPrice()));
        // 商品原价
        order.setPrice(Long.valueOf(orderDetail.getDiscountedPrice() == null || orderDetail.getDiscountedPrice() == 0 ? orderDetail.getSupplyPrice1() : orderDetail.getDiscountedPrice()));
        return order;
    }


}
